package com.jinwei.qunguanjia.system.service;

import com.jinwei.qunguanjia.common.core.page.PageDataInfo;
import com.jinwei.qunguanjia.system.dto.SysDictTypeDTO;

import java.util.List;

public interface SysDictTypeService {

    /**
     * 保存接口
     * @param sysDictTypeDTO 实体对象
     */
    void save(SysDictTypeDTO sysDictTypeDTO);

    /**
     * 删除接口
     * @param ids 主键列表
     */
    void remove(List<String> ids);

    /**
     *  根据主键id修改接口
     * @param sysDictTypeDTO 实体对象
     */
    void update(SysDictTypeDTO sysDictTypeDTO);

    /**
     *  根据id获取单条详细
     * @param id 主键
     * @return SysDictTypeDTO对象
     */
    SysDictTypeDTO get(String id);

    /**
     *  根据查询条件获取单条详细
     * @param sysDictTypeDTO 查询条件
     * @return SysDictTypeDTO对象
     */
    SysDictTypeDTO get(SysDictTypeDTO sysDictTypeDTO) throws IllegalAccessException;

    /**
     *  根据查询条件获取总数
     * @param sysDictTypeDTO 查询条件
     * @return count总数
     */
    Integer count(SysDictTypeDTO sysDictTypeDTO) throws IllegalAccessException;

    /**
     *  根据查询条件获取列表
     * @param sysDictTypeDTO 查询条件
     * @return list结果
     */
    List<SysDictTypeDTO> list(SysDictTypeDTO sysDictTypeDTO) throws IllegalAccessException;
    /**
     *  根据查询条件获取列表
     * @param sysDictTypeDTO 查询条件
     * @return 分页结果
     */
    PageDataInfo<SysDictTypeDTO> listPage(SysDictTypeDTO sysDictTypeDTO) throws IllegalAccessException;

    /**
     * 加载字典缓存数据
     */
    void loadingDictCache() throws IllegalAccessException;

    /**
     * 清空字典缓存数据
     */
    void clearDictCache();

    /**
     * 重置字典缓存数据
     */
    void resetDictCache() throws IllegalAccessException;

    /**
     * 校验字典类型称是否唯一
     *
     * @param sysDictTypeDTO 字典类型
     * @return 结果
     */
    String checkDictTypeUnique(SysDictTypeDTO sysDictTypeDTO) throws IllegalAccessException;

}
